82 research outputs found
Speeding Up Maximal Causality Reduction with Static Dependency Analysis
Stateless Model Checking (SMC) offers a powerful approach to verifying multithreaded programs but suffers from the state-space explosion problem caused by the huge thread interleaving space. The pioneering reduction technique Partial Order Reduction (POR) mitigates this problem by pruning equivalent interleavings from the state space. However, limited by the happens-before relation, POR still explores redundant executions. The recent advance, Maximal Causality Reduction (MCR), shows a promising performance improvement over the existing reduction techniques, but it has to construct complicated constraints to ensure the feasibility of the derived execution due to the lack of dependency information. In this work, we present a new technique, which extends MCR with static analysis to reduce the size of the constraints, thus speeding up the exploration of the state space. We also address the redundancy problem caused by the use of static analysis. We capture the dependency between a read and a later event e in the trace from the system dependency graph and identify those reads that e is not control dependent on. Our approach then ignores the constraints over such reads to reduce the complexity of the constraints. The experimental results show that compared to MCR, the number of the constraints and the solving time by our approach are averagely reduced by 31.6% and 27.8%, respectively
Exploring the relationship between welfare participation in childhood and depression in adulthood in the United States
OBJECTIVE: Depression is a serious mental health disorder, and untangling its causal agents is a major public health priority in the United States. This study examines the relationship between participating in welfare programs during childhood and experiencing depression during young adulthood. METHOD: This study used wave I and IV data from the Add Health (N = 15,701). Multiple imputation is used to deal with missing data. Propensity score matching is used to reduce the selection bias, and then multiple regressions were used to examine the welfare participation and depression relationships. RESULTS: Overall, young adults from welfare-recipient families reported significantly higher depression scores, rather than the clinical diagnosis of depression. Subgroup analyses showed only the poor group had significantly higher depression scores, whereas only the near-poor group had a significantly diagnosed depression outcome. Additionally, significantly higher depression scores were found for female youth from welfare-recipient families. However, no significant differences were found between the gender groups regarding diagnosed depression. DISCUSSION: Using welfare participation as an economic marker, the subgroup analyses help to identify target populations for future intervention. Implications of this study will be of interest to policy makers and have value for informing policy decisions
SmartTrack: Efficient Predictive Race Detection
Widely used data race detectors, including the state-of-the-art FastTrack
algorithm, incur performance costs that are acceptable for regular in-house
testing, but miss races detectable from the analyzed execution. Predictive
analyses detect more data races in an analyzed execution than FastTrack
detects, but at significantly higher performance cost.
This paper presents SmartTrack, an algorithm that optimizes predictive race
detection analyses, including two analyses from prior work and a new analysis
introduced in this paper. SmartTrack's algorithm incorporates two main
optimizations: (1) epoch and ownership optimizations from prior work, applied
to predictive analysis for the first time; and (2) novel conflicting critical
section optimizations introduced by this paper. Our evaluation shows that
SmartTrack achieves performance competitive with FastTrack-a qualitative
improvement in the state of the art for data race detection.Comment: Extended arXiv version of PLDI 2020 paper (adds Appendices A-E) #228
SmartTrack: Efficient Predictive Race Detectio
Effective Lifetime of Non-Equilibrium Carriers in Semiconductors from Non-Adiabatic Molecular Dynamics Simulations
The lifetime of non-equilibrium electrons and holes in semiconductors is
crucial for solar cell and optoelectronic applications. Non-adiabatic molecular
dynamics (NAMD) simulations based on time-dependent density functional theory
(TDDFT) are widely used to study excited-state carrier dynamics. However, the
calculated carrier lifetimes are often different from experimental results by
orders of magnitude. In this work, by revisiting the definition of carrier
lifetime and considering different recombination mechanisms, we report a
systematic procedure for calculating the effective carrier lifetime in
realistic semiconductor crystals that can be compared directly to experimental
measurements. The procedure shows that considering all recombination mechanisms
and using reasonable densities of carriers and defects are crucial in
calculating the effective lifetime. When NAMD simulations consider only
Shockey-Read-Hall (SRH) defect-assisted and band-to-band non-radiative
recombination while neglect band-to-band radiative recombination, and the
densities of non-equilibrium carriers and defects in supercell simulations are
much higher than those in realistic semiconductors under solar illumination,
the calculated lifetimes are ineffective and thus differ from experiments.
Using our procedure, the calculated effective lifetime of the halide perovskite
CH3NH3PbI3 agrees with experiments. It is mainly determined by band-to-band
radiative and defect-assisted non-radiative recombination, while band-to-band
non-radiative recombination is negligible. These results indicate that it is
possible to calculate carrier lifetimes accurately based on NAMD simulations,
but the directly calculated values should be converted to effective lifetimes
for comparison to experiments. The revised procedure can be widely applied in
future carrier lifetime simulations.Comment: 30 pages, 5 figure
A modified ‘skeleton/skin’ strategy for designing CoNiP nanosheets arrayed on graphene foam for on/off switching of NaBH hydrolysis
CoNiP nanosheet array catalysts were successfully prepared on three-dimensional (3D) graphene foam using hydrothermal synthesis. These catalysts were prepared using 3D Ni–graphene foam (Ni/GF), comprising nickel foam as the ‘skeleton’ and reduced graphene oxide as the ‘skin’. This unique continuous modified ‘skeleton/skin’ structure ensure that the catalysts had a large surface area, excellent conductivity, and sufficient surface functional groups, which promoted in situ CoNiP growth, while also optimizing the hydrolysis of sodium borohydride. The nanosheet arrays were fully characterized and showed excellent catalytic performance, as supported by density functional theory calculations. The hydrogen generation rate and activation energy are 6681.34 mL min g and 31.2 kJ mol, respectively, outperforming most reported cobalt-based catalysts and other precious metal catalysts. Furthermore, the stability of mockstrawberry-like CoNiP catalyst was investigated, with 74.9% of the initial hydrogen generation rate remaining after 15 cycles. The catalytic properties, durability, and stability of the catalyst were better than those of other catalysts reported previously
Fast and Effective Approaches for Verifying and Debugging Concurrent Programs
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact of multi-core hardware. Unfortunately, it is difficult to write correct concurrent programs. Stateless Model Checking (SMT) and Deterministic Replay are powerful techniques for systematic testing and reproducing concurrent failures. However, it is challenging to develop efficient and practical SMT and bug reproduction systems due to the exponentially large thread interleaving space which can be exacerbated when it comes to relaxed memory models. In this work, I introduce my research efforts to address the challenges in developing fast and effective SMT and deterministic replay techniques. I present a new model checking technique based on maximal causality reduction for verifying concurrent programs under different memory models. I also optimize the model checker by using static dependency analysis to reduce the constraints size and introducing a new equivalence for checking the seed interleavings, which I call switch equivalence to further reduce the redundant exploration. To debug heisenbugs more efficiently, I presents a new concurrency failure reproduction technique, H3, that enables reproducing concurrency bugs in production runs on commercial off-the-shelf hardware for the first time. H3 integrates the hardware control flow tracing capability provided in recent Intel processors, Processor Tracing (PT), with symbolic constraint analysis. Compared to a state-of-the-art solution, CLAP, this integration allows H3 to reproduce failures with much lower runtime overhead and much more compact control-flow trace. Moreover, it allows us to develop a highly effective core-based constraint reduction technique that reduces the complexity of the generated symbolic constraints from exponential in the trace size to exponential in the number of cores
Fast and Effective Approaches for Verifying and Debugging Concurrent Programs
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact of multi-core hardware. Unfortunately, it is difficult to write correct concurrent programs. Stateless Model Checking (SMT) and Deterministic Replay are powerful techniques for systematic testing and reproducing concurrent failures. However, it is challenging to develop efficient and practical SMT and bug reproduction systems due to the exponentially large thread interleaving space which can be exacerbated when it comes to relaxed memory models. In this work, I introduce my research efforts to address the challenges in developing fast and effective SMT and deterministic replay techniques. I present a new model checking technique based on maximal causality reduction for verifying concurrent programs under different memory models. I also optimize the model checker by using static dependency analysis to reduce the constraints size and introducing a new equivalence for checking the seed interleavings, which I call switch equivalence to further reduce the redundant exploration. To debug heisenbugs more efficiently, I presents a new concurrency failure reproduction technique, H3, that enables reproducing concurrency bugs in production runs on commercial off-the-shelf hardware for the first time. H3 integrates the hardware control flow tracing capability provided in recent Intel processors, Processor Tracing (PT), with symbolic constraint analysis. Compared to a state-of-the-art solution, CLAP, this integration allows H3 to reproduce failures with much lower runtime overhead and much more compact control-flow trace. Moreover, it allows us to develop a highly effective core-based constraint reduction technique that reduces the complexity of the generated symbolic constraints from exponential in the trace size to exponential in the number of cores
- …